home *** CD-ROM | disk | FTP | other *** search
/ Gekkan Dennou Club 147 / Gekkan Dennou Club - 2000.8 Vol. 147 (Japan).7z / Gekkan Dennou Club - 2000.8 Vol. 147 (Japan) (Track 1).bin / games / sakiba / source / rbdata.c < prev    next >
Text File  |  2000-06-21  |  8KB  |  263 lines

  1. /**************************************************
  2.  
  3.     格闘シミュレーション「さきば」
  4.  
  5.         キャラクタデータ(ロバ耳娘)
  6.  
  7.  **************************************************/
  8.  
  9. #include    <stdio.h>
  10.  
  11. #include    "sakiba.h"
  12. #include    "chranim.h"
  13.  
  14.  
  15. /************************
  16.     スプライトパターン
  17.  ************************/
  18. static CODE    normal0_l[] = {0x0000, 0x0010};        /* 通常 */
  19. static CODE    normal1_l[] = {0x0001, 0x0011};
  20. static CODE    normal2_l[] = {0x0002, 0x0012};
  21. static CODE    normal0_r[] = {0x0003, 0x0013};
  22. static CODE    normal1_r[] = {0x0004, 0x0014};
  23. static CODE    normal2_r[] = {0x0005, 0x0015};
  24.  
  25. static CODE    guard[]     = {0x0006, 0x0016};        /* 防御 */
  26.  
  27. static CODE    damage[]    = {0x0007, 0x0017};        /* くらい */
  28.  
  29. static CODE    ready0[]    = {0x0008, 0x0018};        /* 登場 */
  30. static CODE    ready1_l[]  = {0x0009, 0x0019};
  31. static CODE    ready1_r[]  = {0x4009, 0x4019};
  32.  
  33. static CODE    win0_l[]    = {0x400a, 0x401a};        /* 勝ち */
  34. static CODE    win0_r[]    = {0x000a, 0x001a};
  35. static CODE    win1_l[]    = {0x400b, 0x401b};
  36. static CODE    win1_r[]    = {0x000b, 0x001b};
  37. static CODE    win2_l[]    = {0x400c, 0x401c};
  38. static CODE    win2_r[]    = {0x000c, 0x001c};
  39. static CODE    win3_l[]    = {0x400d, 0x401d};
  40. static CODE    win3_r[]    = {0x000d, 0x001c};
  41.  
  42. static CODE    balloon_l[] = {0x020e, 0x021e};        /* 風船 */
  43. static CODE    balloon_r[] = {0x420e, 0x421e};
  44.  
  45. static CODE    lose0[]     = {0x000f, 0x001f};        /* 負け */
  46. static CODE    lose1[]     = {0x0020, 0x0030};
  47. static CODE    lose2[]     = {0x0021, 0x0031};
  48.  
  49.  
  50. static CODE    rot_a[]     = {0x0022, 0x0032};        /* 回転 */
  51. static CODE    rot_b[]     = {0x0023, 0x0033};
  52. static CODE    rot_c[]     = {0x0024, 0x0034};
  53. static CODE    rot_d[]     = {0x0025, 0x0035};
  54. static CODE    rot_e[]     = {0x0026, 0x0036};
  55. static CODE    rot_f[]     = {0x0027, 0x0037};
  56. static CODE    rot_g[]     = {0x0028, 0x0038};
  57. static CODE    rot_h[]     = {0x0029, 0x0039};
  58.  
  59. static CODE    dash_l[]    = {0x002a, 0x003a};        /* ダッシュ */
  60. static CODE    dash_r[]    = {0x002b, 0x003b};
  61.  
  62. static CODE    kick_l[]    = {0x012c, 0x012d, 0x013c, 0x013d};        /* キック */
  63. static CODE    kick_r[]    = {0x412d, 0x412c, 0x413d, 0x413c};
  64.  
  65. static CODE    punch0_l[]  = {0x402e, 0x403e};        /* パンチ */
  66. static CODE    punch0_r[]  = {0x002e, 0x003e};
  67. static CODE    punch1_l[]  = {0x402f, 0x403f};
  68. static CODE    punch1_r[]  = {0x002f, 0x003f};
  69.  
  70.  
  71. enum {    NORMAL0 = 0, NORMAL1, NORMAL2, GUARD, DAMAGE,
  72.     READY0, READY1, READY2, WIN0, WIN1, WIN2, WIN3, BALLOON, LOSE0, LOSE1, LOSE2,
  73.     ROT0, ROT1, ROT2, ROT3, ROT4, ROT5, ROT6, ROT7, DASH, KICK, PUNCH0, PUNCH1,
  74.     PAT_END
  75. };
  76.  
  77. static
  78. CHR_PAT    chr_pat[] = {
  79.         {1, 2, normal0_l, normal0_r},        /* 通常 */
  80.         {1, 2, normal1_l, normal1_r},
  81.         {1, 2, normal2_l, normal2_r},
  82.  
  83.         {1, 2, guard, guard},            /* 防御 */
  84.  
  85.         {1, 2, damage, damage},            /* くらい */
  86.  
  87.         {1, 2, ready0, ready0},            /* 登場 */
  88.         {1, 2, ready1_l, ready1_r},
  89.         {1, 2, ready1_r, ready1_l},
  90.  
  91.         {1, 2, win0_l, win0_r},            /* 勝ち */
  92.         {1, 2, win1_l, win1_r},
  93.         {1, 2, win2_l, win2_r},
  94.         {1, 2, win3_l, win3_r},
  95.  
  96.         {1, 2, balloon_l, balloon_r},        /* 風船 */
  97.  
  98.         {1, 2, lose0, lose0},            /* 負け */
  99.         {1, 2, lose1, lose1},
  100.         {1, 2, lose2, lose2},
  101.  
  102.         {1, 2, rot_a, rot_a},            /* 回転 */
  103.         {1, 2, rot_b, rot_h},
  104.         {1, 2, rot_c, rot_g},
  105.         {1, 2, rot_d, rot_f},
  106.         {1, 2, rot_e, rot_e},
  107.         {1, 2, rot_f, rot_d},
  108.         {1, 2, rot_g, rot_c},
  109.         {1, 2, rot_h, rot_b},
  110.  
  111.         {1, 2, dash_l, dash_r},            /* ダッシュ */
  112.  
  113.         {2, 2, kick_l, kick_r},            /* キック */
  114.  
  115.         {1, 2, punch0_l, punch0_r},        /* パンチ */
  116.         {1, 2, punch1_l, punch1_r}
  117.     };
  118.  
  119.  
  120. #define    V(n, dn, ddn, t)    (int)((n)*65536.0),(int)((dn)*65536.0),(int)((ddn)*65536.0),t
  121.  
  122. /****************
  123.     シーケンス
  124.  ****************/
  125. static
  126. int    xy0[] = {    V(0.0, 0.0, 0.0, SEQ_END)
  127.     };
  128.  
  129. /*** 通常 *******/
  130. static
  131. short    normal_pat[] = {NORMAL0, 10, NORMAL1, 12, NORMAL0, 10, NORMAL2, 12, SEQ_LOOP};
  132.  
  133. /*** 防御 *******/
  134. static
  135. short    guard_pat[] = {GUARD, SEQ_LOOP};
  136.  
  137. /*** くらい *******/
  138. static
  139. short    damage_pat[] = {DAMAGE, SEQ_LOOP};
  140. static
  141. int    damage_x[] = {    V(0.0, -1.0, 1.0/8, 8), V(-4.0, 0.0, 0.0, 32),
  142.             V(-4.0, 4.0/32, 0.0, 32), V(0.0, 0.0, 0.0, SEQ_END)
  143.     };
  144. static
  145. int    damage_y[] = {    V(0.0, -0.5, 0.5*2/16, 16), V(0.0, 0.0, 0.0, SEQ_END)
  146.     };
  147.  
  148. /*** 登場 *******/
  149. static
  150. short    ready_pat[] = {READY0, 4, READY1, 24, READY0, 8, READY2, 24, READY0, 4, SEQ_LOOP};
  151. static
  152. int    ready_x[] = {    V(0.0,  10.0/32, -10.0*2/32/32, 32),
  153.             V(0.0, -10.0/32,  10.0*2/32/32, 32),
  154.             V(0.0, 0.0, 0.0, SEQ_LOOP)
  155.     };
  156. static
  157. int    ready_y[] = {    V(-2.0, 18.0/32, -18.0*2/32/32, 32),
  158.             V(0.0, 0.0, 0.0, SEQ_LOOP)
  159.     };
  160.  
  161. /*** 勝ち *******/
  162. static
  163. short    win_pat[] = {WIN0, 8, WIN1, 8, WIN2, 8, WIN3, 8, SEQ_LOOP};
  164. static
  165. int    win_x[] = {    V(0.0, -0.25, 0.0, SEQ_END)
  166.     };
  167. int    win_y[] = {    V(0.0, -0.3, 0.0008, SEQ_END)
  168.     };
  169.  
  170. static
  171. short    balloon_pat[] = {BALLOON, SEQ_LOOP};
  172. static
  173. int    balloon_x[] = {    V(-7.0, -0.25, 0.0, SEQ_END)
  174.     };
  175. int    balloon_y[] = {    V(-20.0, -0.3, 0.0008, SEQ_END)
  176.     };
  177.  
  178. /*** 負け *******/
  179. static
  180. short    lose_pat[] = {LOSE0, 12, LOSE1, 18, LOSE2, 12, SEQ_LOOP};
  181.  
  182.  
  183. /*** キック *******/
  184. static
  185. short    kick1_pat[] = {DASH, 12, ROT6, 4, KICK, 12, SEQ_END};
  186. static
  187. int    kick1_x[] = {    V(0.0, 12.0/16, 0.0, 16), V(12.0, 38.0/12, 0.0, 12),
  188.             V(50.0, 0.0, 0.0, SEQ_END)
  189.     };
  190. static
  191. int    kick1_y[] = {    V(0.0, -1.0, 1.0*2/16, 16), V(0.0, -48.0/48, 4.0/48, 12),
  192.             V(-4.0, 0.0, 0.0, SEQ_END)
  193.     };
  194.  
  195. static
  196. short    kick2_pat[] = {KICK, 12 + 4, DASH, 4, ROT6, 8, DASH, 24, ROT6, 8 + 16, SEQ_END};
  197. static
  198. int    kick2_x[] = {    V(50.0, 0.0, 0.0, 12), V(50.0, -2.0/16, 0.0, 16),
  199.             V(48.0, -48.0/32, 0.0, 32), V(0.0, 0.0, 0.0, SEQ_END)
  200.     };
  201. static
  202. int    kick2_y[] = {    V(-4.0, 0.0, 0.0, 12), V(-4.0, 0.0, 1.0/32, 16),
  203.             V(0.0, -0.5, 0.5*2/32, 32), V(0.0, 0.0, 0.0, SEQ_END)
  204.     };
  205.  
  206. /*** パンチ *******/
  207. static
  208. short    punch1_pat[] = {DASH, 24, ROT7, 4, PUNCH0, 24,  SEQ_END};
  209. static
  210. int    punch1_x[] = {    V(0.0, 56.0*2/40, -56.0*2/40/40, 40),
  211.             V(56.0, 0.0, 0.0, 12), V(56.0, 0.0, 0.0, SEQ_END)
  212.     };
  213. static
  214. int    punch1_y[] = {    V(0.0, -0.5, 0.5*2/40, 40),
  215.             V(0.0, 0.0, 0.0, 12), V(0.0, 0.0, 0.0, SEQ_END)
  216.     };
  217.  
  218. static
  219. short    punch2_pat[] = {PUNCH1, 12, ROT1, 8, ROT2, 8, ROT3, 8, ROT4, 8, ROT5, 8,
  220.             DASH, 32, NORMAL0, 12, SEQ_END};
  221. static
  222. int    punch2_x[] = {    V(56.0, 0.0, 0.0, 12 + 40), V(56.0, -56.0/32, 0.0, 32),
  223.             V(0.0, 0.0, 0.0, SEQ_END)
  224.     };
  225. static
  226. int    punch2_y[] = {    V(0.0, -40.0*2/12, 40.0*2/12/12, 12), V(-40.0, 0.0, 40.0*2/40/40, 40),
  227.             V(0.0, -1.0, 1.0*2/32, 32), V(0.0, 0.0, 0.0, SEQ_END)
  228.     };
  229.  
  230.  
  231. #define    NUL3    {NULL, NULL, NULL}
  232.  
  233. /**********************
  234.     キャラクタデータ
  235.  **********************/
  236. CHR_DATA    chr_roba = {
  237.             {3, 5, 10,            /* 弱攻撃 */
  238.                 "跳び蹴り",
  239.                 {{kick1_pat, kick1_x, kick1_y}, NUL3},
  240.                 {{kick2_pat, kick2_x, kick2_y}, NUL3}
  241.             },
  242.             {5, 7, 20,            /* 強攻撃 */
  243.                 "ニコニコアッパー",
  244.                 {{punch1_pat, punch1_x, punch1_y}, NUL3},
  245.                 {{punch2_pat, punch2_x, punch2_y}, NUL3}
  246.             },
  247.  
  248.             "ロウミィ",            /* キャラクタ名 */
  249.             "ROBA",                /* スプライトファイル名 */
  250.             {"ROBA1", "ROBA2"},        /* パレットファイル名 */
  251.             chr_pat,            /* キャラクタパターン */
  252.             {                /* アニメーションシーケンス */
  253.             {{normal_pat, xy0, xy0}, NUL3},            /* 通常 */
  254.             {{guard_pat, xy0, xy0}, NUL3},            /* 防御 */
  255.             {{damage_pat, damage_x, damage_y}, NUL3},    /* くらい */
  256.             {{ready_pat, ready_x, ready_y}, NUL3},        /* 登場 */
  257.             {{win_pat, win_x, win_y},            /* 勝ち */
  258.                 {balloon_pat, balloon_x, balloon_y}},
  259.             {{lose_pat, xy0, xy0}, NUL3}            /* 負け */
  260.             }
  261.         };
  262.  
  263. /******************** End of File *********************************************/